package com.cin.cma.common.model.finixx.request;


import com.alibaba.fastjson2.annotation.JSONField;
import com.cin.cma.common.model.finixx.base.BaseRequest;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.List;

@EqualsAndHashCode(callSuper = true)
@Data
public class BKPosBookingRequest extends BaseRequest {
    //0销售（已取货），2订货（未取货）
    @JsonProperty("pos_sale_op")
    @JSONField(name = "pos_sale_op")
    private Integer posSaleOp;

    @JsonProperty("pos_source")
    @JSONField(name = "pos_source")
    private String posSource;

    @JsonProperty("pos_sale_id")
    @JSONField(name = "pos_sale_id")
    private String posSaleId;

    @JsonProperty("pos_index_id")
    @JSONField(name = "pos_index_id")
    private String posIndexId;

    @JsonProperty("pos_Amount")
    @JSONField(name = "pos_Amount")
    private BigDecimal posAmount;

    @JsonProperty("pos_sale_user")
    @JSONField(name = "pos_sale_user")
    private String posSaleUser;

    @JsonProperty("pos_workstation")
    @JSONField(name = "pos_workstation")
    private String posWorkstation;

    @JsonProperty("pos_opend_date")
    @JSONField(name = "pos_opend_date")
    private String posOpendDate;

    @JsonProperty("pos_class_seq")
    @JSONField(name = "pos_class_seq")
    private String posClassSeq;

    @JsonProperty("pos_hand_discount")
    @JSONField(name = "pos_hand_discount")
    private String posHandDiscount;

    @JsonProperty("pos_pay_fetch")
    @JSONField(name = "pos_pay_fetch")
    private String posPayFetch;

    @JsonProperty("pos_temp_id")
    @JSONField(name = "pos_temp_id")
    private String posTempId;

    @JsonProperty("pos_sys_sale")
    @JSONField(name = "pos_sys_sale")
    private String posSysSale;

    @JsonProperty("pos_sale_goods_nods")
    @JSONField(name = "pos_sale_goods_nods")
    private List<BKPosSaleGoodsNodsRequest> posSaleGoodsNods; // 根据你的数据结构可能需要替换 Object

    @JsonProperty("pos_sale_pay_nods")
    @JSONField(name = "pos_sale_pay_nods")
    private List<BKPosSalePayNodsRequest> posSalePayNods; // 根据你的数据结构可能需要替换 Object

    @JsonProperty("pos_sale_permission_nods")
    @JSONField(name = "pos_sale_permission_nods")
    private List<BKPosSalePermissionNodsRequest> posSalePermissionNods; // 根据你的数据结构可能需要替换 Object

    @JsonProperty("pos_sale_stock_detail_nods")
    @JSONField(name = "pos_sale_stock_detail_nods")
    private List<BKPosSaleStockDetailNodsRequest> posSaleStockDetailNods; // 根据你的数据结构可能需要替换 Object

    @JsonProperty("pos_dll_ver")
    @JSONField(name = "pos_dll_ver")
    private String posDllVer;

    @JsonProperty("SaleSpeed")
    @JSONField(name = "SaleSpeed")
    private Integer saleSpeed;

    @JsonProperty("pos_order_remark")
    @JSONField(name = "pos_order_remark")
    private BKPosOrderRemarkRequest posOrderRemark; // 根据你的数据结构可能需要替换 Object

    @JsonProperty("Pos_Pickup_Status")
    @JSONField(name = "Pos_Pickup_Status")
    private Integer posPickupStatus;

    @JsonProperty("Pos_Pickup_Status_Time")
    @JSONField(name = "Pos_Pickup_Status_Time")
    private String posPickupStatusTime; // 可能是日期格式，取决于实际数据

    // 可能为空的字段
    @JsonProperty("PafProjectName")
    @JSONField(name = "PafProjectName")
    private String pafProjectName;

    @JsonProperty("PafProjectId")
    @JSONField(name = "PafProjectId")
    private String pafProjectId;

    @JsonProperty("PafCompanyName")
    @JSONField(name = "PafCompanyName")
    private String pafCompanyName;

    @JsonProperty("pos_trace_number")
    @JSONField(name = "pos_trace_number")
    private String posTraceNumber;

    @JsonProperty("pos_batch_number")
    @JSONField(name = "pos_batch_number")
    private String posBatchNumber;

    @JsonProperty("poIntegerId")
    @JSONField(name = "poIntegerId")
    private String poIntegerId;

    @JsonProperty("facadeCD")
    @JSONField(name = "facadeCD")
    private String facadeCD;

    @JsonProperty("partnerCardNumber")
    @JSONField(name = "partnerCardNumber")
    private String partnerCardNumber;

    @JsonProperty("poIntegerRate")
    @JSONField(name = "poIntegerRate")
    private String poIntegerRate;

    @JsonProperty("gradeID")
    @JSONField(name = "gradeID")
    private String gradeID;

    @JsonProperty("globalOrderNo")
    @JSONField(name = "globalOrderNo")
    private String globalOrderNo;

    @JsonProperty("ctbc_pay_record")
    @JSONField(name = "ctbc_pay_record")
    private String ctbcPayRecord;

}
